Déclencheurs
Commandes
Checkpoints
Menus
JSON
Le menu avec prix et icônes
Nous allons ici construire un menu contenant permettant d’afficher des prix.
Construction
Commençons par créer la fonction qui englobera la création du menu pour le joueur :
public void CreatePanel(Player player) { }
Nous allons dans cet exemple afficher les informations de l’objet n°1 :
Item item = Nova.man.item.GetItem(1);
Nous pouvons désormais appeler le constructeur en utilisant le type TabPrice
:
UIPanel pricePanel = new UIPanel("Menu avec prix", UIPanel.PanelType.TabPrice);
Nous pouvons déjà ajouter un bouton Fermer
avec la méthode AddButton()
qui fermera le menu que nous intitulerons panel
:
pricePanel.AddButton("Fermer", (panel) =>
{
player.ClosePanel(panel);
});
Et un bouton Valider
qui exécutera le code associé à l’onglet sélectionné :
pricePanel.AddButton("Valider", (panel) =>
{
panel.SelectTab();
});
Nous allons désormais ajouter les informations de notre item dans un onglet dédié avec la méthode AddTabLine()
:
Champs | Correspondance |
---|---|
Titre | Steak |
Prix | 10€ |
Icône | L’icône du steak |
Action | Affiche dans la console Item sélectionné et l’id du steak |
pricePanel.AddTabLine(player.NewTranslate(item.itemName), 10 + "€", Nova.man.newIcons.IndexOf(item.Icon), (panel) =>
{
Debug.Log("Item selectionné : " + item.id);
});
Il ne nous reste plus qu’à afficher le menu au joueur avec la méthode ShowPanelUI()
:
player.ShowPanelUI(pricePanel);
Résultat
Le code complet
public void CreatePanel(Player player)
{
Item item = Nova.man.item.GetItem(1);
UIPanel pricePanel = new UIPanel("Menu avec prix", UIPanel.PanelType.TabPrice);
pricePanel.AddButton("Fermer", (panel) =>
{
player.ClosePanel(panel);
});
pricePanel.AddButton("Valider", (panel) =>
{
panel.SelectTab();
});
pricePanel.AddTabLine(player.NewTranslate(item.itemName), 10 + "€", Nova.man.newIcons.IndexOf(item.Icon), (panel) =>
{
Debug.Log("Item selectionné : " + item.id);
});
player.ShowPanelUI(pricePanel);
}
Une version simplifiée
public void CreatePanel(Player player)
{
Item item = Nova.man.item.GetItem(1);
UIPanel pricePanel = new UIPanel("Menu avec prix", UIPanel.PanelType.TabPrice)
.AddButton("Fermer", (panel) =>
{
player.ClosePanel(panel);
})
.AddButton("Valider", (panel) =>
{
panel.SelectTab();
})
.AddTabLine(player.NewTranslate(item.itemName), 10 + "€", Nova.man.newIcons.IndexOf(item.Icon), (panel) =>
{
Debug.Log("Item selectionné : " + item.id);
});
player.ShowPanelUI(pricePanel);
}
ℹ️ Remarques
- Les noms des items doivent êtres traduits dans la langue du joueur grâce à la fonctionplayer.NewTranslate()